home *** CD-ROM | disk | FTP | other *** search
/ Computer Select (Limited Edition) / Computer Select.iso / dobbs / v17n02 / dflt10.exe / CLIPBORD.C < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-21  |  1.2 KB  |  45 lines

  1. /* ----------- clipbord.c ------------ */
  2. #include "dflat.h"
  3.  
  4. char *Clipboard;
  5. unsigned ClipboardLength;
  6.  
  7. void CopyToClipboard(WINDOW wnd)
  8. {
  9.     if (TextBlockMarked(wnd))    {
  10.         char *bbl=TextLine(wnd,wnd->BlkBegLine)+wnd->BlkBegCol;
  11.         char *bel=TextLine(wnd,wnd->BlkEndLine)+wnd->BlkEndCol;
  12.         ClipboardLength = (int) (bel - bbl);
  13.         Clipboard = realloc(Clipboard, ClipboardLength);
  14.         if (Clipboard != NULL)
  15.             memmove(Clipboard, bbl, ClipboardLength);
  16.     }
  17. }
  18.  
  19. int PasteText(WINDOW wnd, char *SaveTo, unsigned len)
  20. {
  21.     if (SaveTo != NULL && len > 0)    {
  22.         unsigned plen = strlen(wnd->text) + len;
  23.         char *bl, *el;
  24.  
  25.         if (plen <= wnd->MaxTextLength)    {
  26.             if (plen > wnd->textlen)    {
  27.                 wnd->text = realloc(wnd->text, plen+2);
  28.                 wnd->textlen = plen;
  29.             }
  30.             if (wnd->text != NULL)    {
  31.                 bl = CurrChar;
  32.                 el = bl+len;
  33.                 memmove(el, bl, strlen(bl)+1);
  34.                 memmove(bl, SaveTo, len);
  35.                 BuildTextPointers(wnd);
  36.                 wnd->TextChanged = TRUE;
  37.                 return TRUE;
  38.             }
  39.             else
  40.                 ResetEditBox(wnd);
  41.         }
  42.     }
  43.     return FALSE;
  44. }
  45.